require "treetop"
require "polyglot"
require "flannel/block"

require "flannel/base_block"

module Flannel
  class BlockCutter
    def cut markup
      parser = BlockParser.new
     
      blocks = parser.parse(markup).content.map { |block| form_blocks block }
    end
    
    def form_blocks block
      Flannel::BaseBlock.new(block)
    end
    
    #def split_into_blocks markup
    #  if is_preformatted markup
    #    markup
    #  else
    #    markup.split(/\n\s*?\n/).map { |s| s.strip }
    #  end
    #end
   # 
   # def split_preformatted_blocks markup
   #   markup.split(/^(_(?=\n\n)|(?=_))/).map { |s| s.strip }.reject { |s| is_invalid_block s}
   # end
   # 
   # def convert_to_text_blocks pieces
   #   pieces.map{ |piece| Flannel::TextBlock.new piece }
   # end
   # 
   # def is_invalid_block s
   #   s == "" || s == "_" 
   # end
   # 
   # def is_preformatted markup
   #   markup[0] == '_'[0]
   # end
  end
end